<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:p="http://primefaces.org/ui"    
      xmlns:f="http://java.sun.com/jsf/core">

    <body>
        <ui:composition template="./../MasterPage/masterPage.xhtml">
            <ui:define name="content">

                <p:panel header="Mantenedor de Cliente">
                    <h:form id="frmfieldset">
                        <p:growl id="grow2" showDetail="true"/>
                        <h:panelGrid id="nuevo" columns="1" width="100%" >                
                            <p:fieldset legend="Nuevo Cliente" toggleable="true" collapsed="true" toggleSpeed="500">  
                                <p:ajax event="toggle"  update="grow2" />                 
                                <h:panelGrid  id="datos" columns="4" cellpadding="15">  
                                    <h:outputText value="DNI: *" /> 
                                    <p:inputText style="width: 150px"  required="true" requiredMessage="Ingrese DNI" label="DNI" id="txtDNI" value="#{managedBeanCliente.objetoPersonaCrear.perDNI}"/>                        
                                    <h:outputText value="Nombre: *" /> 
                                    <p:inputText style="width: 200px"  required="true" requiredMessage="Ingrese Nombre" label="Nombre" id="txtNombre" value="#{managedBeanCliente.objetoPersonaCrear.perNombres}"/>                        
                                    <h:outputText value="Apellidos: *" /> 
                                    <p:inputText style="width: 200px"  required="true" requiredMessage="Ingrese Apellidos" label="Apellidos" id="txtApellidos" value="#{managedBeanCliente.objetoPersonaCrear.perApellidos}"/>                        
                                    <h:outputText value="Direccion: *" /> 
                                    <p:inputText style="width: 200px"  required="true" requiredMessage="Ingrese Direccion" label="Direccion" id="txtDireccion" value="#{managedBeanCliente.objetoPersonaCrear.perDireccion}"/>                        
                                    <h:outputText value="Sexo: *" />
                                    <p:selectOneMenu id="nu1" value="#{managedBeanCliente.objetoPersonaCrear.perSexo}" style="width:150px">
                                        <f:selectItem itemLabel="Masculino" itemValue="M" />  
                                        <f:selectItem itemLabel="Femenino" itemValue="F" />  
                                        <f:selectItem itemLabel="Otros" itemValue="O" />  
                                    </p:selectOneMenu> 
                                    <h:outputText value="Telefono: *" /> 
                                    <p:inputText style="width: 150px" label="Telefono" id="txtTelefono" value="#{managedBeanCliente.objetoPersonaCrear.perTelf}"/>                        
                                    <h:outputText value="Celular: *" /> 
                                    <p:inputText style="width: 150px" label="Celular" id="txtCelular" value="#{managedBeanCliente.objetoPersonaCrear.perCel}"/>                        
                                    <h:outputText value="Fecha Nacimiento: *" /> 
                                    <p:calendar style="width: 150px" value="#{managedBeanCliente.objetoPersonaCrear.perFechaNac}" pattern="dd/MM/yyyy" />
                                </h:panelGrid>
                                <p:fieldset legend="Asociar a una Empresa" toggleable="true" collapsed="true" toggleSpeed="500">
                                    <h:panelGrid  id="d1" columns="4" cellpadding="15">  
                                        <h:outputText value="RUC: *" /> 
                                        <p:inputText style="width: 150px" label="RUC" id="txtRUC" value="#{managedBeanCliente.objetoClienteCrear.cliRUC}"/>                        
                                        <h:outputText value="Razon Social: *" /> 
                                        <p:inputText style="width: 150px" label="Razon" id="txtRazon" value="#{managedBeanCliente.objetoClienteCrear.cliRazSoc}"/>                        
                                        <h:outputText value="Direccion Fiscal: *" /> 
                                        <p:inputText style="width: 150px" label="Direccion" id="txtDireccionF" value="#{managedBeanCliente.objetoClienteCrear.cliDireccionFiscal}"/>                        
                                        <h:outputText value="Empresa/Asociada: *" /> 
                                        <p:selectOneMenu id="nu2" value="#{managedBeanCliente.objetoClienteCrear.perEmpresaAsociada}" style="width:190px">
                                            <f:selectItem itemLabel="Empresa Asociada" itemValue="1" />  
                                            <f:selectItem itemLabel="Empresa Propia" itemValue="0" />
                                        </p:selectOneMenu> 
                                    </h:panelGrid>
                                </p:fieldset>
                                <br/>
                                <p:separator />
                                <center>        
                                    <p:commandButton icon="ui-icon-disk"  value="Insertar" action="#{managedBeanCliente.insertarNaturalMantenedor()}" update=":frmfieldset:grow2 :frmfieldset :frmNuevo:dataTable" />
                                </center>
                                <p:separator />
                            </p:fieldset>
                        </h:panelGrid>
                    </h:form>
                    <br/>
                    <h:form id="frmNuevo">
                        <p:growl id="growl" showDetail="true"/>
                        <p:growl id="messages" />            
                        <h:panelGrid id="padre" columns="1" style="width: 100%">
                            <h:panelGrid id="hijo2" columns="1" style="width: 100%">
                                <p:dataTable id="dataTable" var="Cliente" value="#{managedBeanCliente.listaNatural}" widgetVar="ClienteTable" emptyMessage="Datos no encontrados"
                                             selection="#{managedBeanCliente.objetoPersona}" selectionMode="single"
                                             rowKey="#{Cliente.idPersona}" paginator="true" rows="5"
                                             rowsPerPageTemplate="5,10,20,50">  
                                    <p:ajax event="rowSelect" listener="#{managedBeanCliente.onRowSelectNatural}"
                                            update=":frmNuevo:display :frmNuevo:growl" oncomplete="ClienteDialogo.show()" />
                                    <p:ajax event="rowUnselect" listener="#{managedBeanCliente.onRowUnselectNatural}" update=":frmNuevo:growl"/>
                                    <f:facet name="header">  
                                        <p:outputPanel>  
                                            <h:outputText value="Listado de Clientes" />    
                                        </p:outputPanel>  
                                    </f:facet>
                                    <p:column id="dni" filterMatchMode="contains" filterBy="#{Cliente.perDNI}" style="text-align: center" > 
                                        <f:facet name="header">
                                            <h:outputText value="DNI" />
                                        </f:facet>
                                        <h:outputText value="#{Cliente.perDNI}" />  
                                    </p:column> 
                                    <p:column id="nombre" filterMatchMode="contains" filterBy="#{Cliente.perNombres}" style="text-align: center" > 
                                        <f:facet name="header">
                                            <h:outputText value="Nombre Completo" />
                                        </f:facet>
                                        <h:outputText value="#{Cliente.perNombres}" />  
                                        <h:outputText value=" " />  
                                        <h:outputText value="#{Cliente.perApellidos}" />  
                                    </p:column>  
                                    <p:column id="Cargo" filterMatchMode="contains" filterBy="#{Cliente.perDireccion}" style="text-align: center" > 
                                        <f:facet name="header">
                                            <h:outputText value="Direccion" />
                                        </f:facet>
                                        <h:outputText value="#{Cliente.perDireccion}" />  
                                    </p:column> 
                                    <p:column id="descripcion" filterMatchMode="contains" filterBy="#{Cliente.perTelf}" style="text-align: center" > 
                                        <f:facet name="header">
                                            <h:outputText value="Telefono" />
                                        </f:facet>
                                        <h:outputText value="#{Cliente.perTelf}" />  
                                    </p:column>  
                                </p:dataTable> 
                            </h:panelGrid>
                        </h:panelGrid>        
                        <p:dialog modal="true" id="dialog" header="Editar Cliente" widgetVar="ClienteDialogo" resizable="false" 
                                  showEffect="explode" hideEffect="explode" height="600" width="900" style="width: 100%" >
                            <h:panelGrid id="display" columns="2" cellpadding="4" style="width: 100%">
                                <p:growl id="grow5" showDetail="true"/>
                                <p:fieldset legend="Datos de Cliente" toggleable="true" toggleSpeed="500">  
                                    <p:ajax event="toggle" listener="#{fieldsetBean.handleToggle}" update="growl" />    
                                    <h:panelGrid columns="6" cellpadding="10">  
                                        <h:outputText value="ID: " />  
                                        <p:inputText style="width: 85%" disabled="true" value="#{managedBeanCliente.objetoPersona.idPersona}"/> 
                                        <h:outputText value="DNI: " />  
                                        <p:inputText style="width: 85%" value="#{managedBeanCliente.objetoPersona.perDNI}"/>  
                                        <h:outputText value="Nombre: " />  
                                        <p:inputText style="width: 85%" value="#{managedBeanCliente.objetoPersona.perNombres}"/> 
                                        <h:outputText value="Apelidos: " />  
                                        <p:inputText style="width: 85%" value="#{managedBeanCliente.objetoPersona.perApellidos}"/> 
                                        <h:outputText value="Direccion: " />  
                                        <p:inputText style="width: 85%" value="#{managedBeanCliente.objetoPersona.perDireccion}"/> 
                                        <h:outputText value="Sexo: " />
                                        <p:selectOneMenu id="nu3" value="#{managedBeanCliente.objetoPersona.perSexo}" style="width:150px">
                                            <f:selectItem itemLabel="Masculino" itemValue="M" />  
                                            <f:selectItem itemLabel="Femenino" itemValue="F" />  
                                            <f:selectItem itemLabel="Otros" itemValue="O" />  
                                        </p:selectOneMenu>
                                        <h:outputText value="Telefono: " />  
                                        <p:inputText style="width: 85%" value="#{managedBeanCliente.objetoPersona.perTelf}"/> 
                                        <h:outputText value="Celular: " />  
                                        <p:inputText style="width: 85%" value="#{managedBeanCliente.objetoPersona.perCel}"/> 
                                        <h:outputText value="Fecha Nacimiento: " /> 
                                        <p:calendar style="width: 150px" value="#{managedBeanCliente.objetoPersona.perFechaNac}" pattern="dd/MM/yyyy" />
                                    </h:panelGrid>
                                    <p:fieldset legend="Detalle Empresa" toggleable="true" collapsed="true" toggleSpeed="500">
                                        <h:panelGrid  id="da19" columns="4" cellpadding="15">  
                                            <h:outputText value="RUC: *" /> 
                                            <p:inputText style="width: 150px" label="RUC" id="txtRUC" value="#{managedBeanCliente.objetoClienteCrear.cliRUC}"/>                        
                                            <h:outputText value="Razon Social: *" /> 
                                            <p:inputText style="width: 150px" label="Razon" id="txtRazon" value="#{managedBeanCliente.objetoClienteCrear.cliRazSoc}"/>                        
                                            <h:outputText value="Direccion Fiscal: *" /> 
                                            <p:inputText style="width: 150px" label="Direccion" id="txtDireccionF" value="#{managedBeanCliente.objetoClienteCrear.cliDireccionFiscal}"/>                        
                                            <h:outputText value="Empresa/Asociada: *" /> 
                                            <p:selectOneMenu id="nu4" value="#{managedBeanCliente.objetoClienteCrear.perEmpresaAsociada}" style="width:190px">
                                                <f:selectItem itemLabel="Empresa Asociada" itemValue="true" />  
                                                <f:selectItem itemLabel="Empresa Propia" itemValue="false" />
                                            </p:selectOneMenu>
                                        </h:panelGrid>
                                        <h:panelGrid id="da29" columns="1">
                                            <center>
                                                <p:commandButton icon="ui-icon-disk"  value="Agregar" title="Agregar" alt="Agregar" action="#{managedBeanCliente.agregandodetalle()}" update=":frmNuevo:grow5 :frmNuevo:da19 :frmNuevo:detallecli" >
                                                </p:commandButton>
                                            </center>
                                        </h:panelGrid>
                                        <p:separator />
                                        <p:contextMenu widgetVar="cMenu">     
                                            <p:menuitem value="Edit Cell" icon="ui-icon-search" onclick="detallecliTable.showCellEditor();
                                                    return false;"/>    
                                            <p:menuitem value="Hide Menu" icon="ui-icon-close" onclick="cMenu.hide();"/>    
                                        </p:contextMenu>

                                        <p:dataTable id="detallecli" var="item" value="#{managedBeanCliente.listaClientesEditar}" editable="true" editMode="cell" widgetVar="detallecliTable"
                                                     selection="#{managedBeanCliente.objetoClienteEditar}"
                                                     rowKey="#{item.idCliente}">  

                                            <f:facet name="header">  
                                                Listado de Datos Adicionales
                                            </f:facet>  

                                            <p:ajax event="cellEdit" listener="#{managedBeanCliente.onCellEditar(event, item.idCliente,item.persona.idPersona,item.cliRUC,item.cliRazSoc,item.cliDireccionFiscal,item.perEmpresaAsociada)}"  update=":frmNuevo:display :frmNuevo:messages :frmNuevo:growl" />  

                                            <p:column headerText="RUC" style="width:25%">  
                                                <p:cellEditor>  
                                                    <f:facet name="output"><h:outputText value="#{item.cliRUC}" /></f:facet>  
                                                    <f:facet name="input"><p:inputText id="modelInput" value="#{item.cliRUC}" style="width:96%"/></f:facet>  
                                                </p:cellEditor>  
                                            </p:column>

                                            <p:column headerText="Razon Social" style="width:25%">  
                                                <p:cellEditor>
                                                    <f:facet name="output"><h:outputText value="#{item.cliRazSoc}" /></f:facet>  
                                                    <f:facet name="input"><p:inputText value="#{item.cliRazSoc}" style="width:96%" label="Year"/></f:facet>  
                                                </p:cellEditor>
                                            </p:column>

                                            <p:column headerText="Direccion Fiscal" style="width:25%">  
                                                <p:cellEditor>  
                                                    <f:facet name="output"><h:outputText value="#{item.cliDireccionFiscal}" /></f:facet>  
                                                    <f:facet name="input"><p:inputText value="#{item.cliDireccionFiscal}" style="width:96%" label="Year"/></f:facet>  
                                                </p:cellEditor>  
                                            </p:column>

                                            <p:column headerText="Empresa/Asociada" style="width:25%">  
                                                <p:cellEditor>  
                                                    <f:facet name="output"><h:outputText value="#{item.perEmpresaAsociada eq false?'Propia':'Asociada'}" /></f:facet>  
                                                    <f:facet name="input">  
                                                        <h:selectOneMenu value="#{item.perEmpresaAsociada}" style="width:100%">  
                                                            <f:selectItem itemLabel="Empresa Asociada" itemValue="true" />  
                                                            <f:selectItem itemLabel="Empresa Propia" itemValue="false" /> 
                                                        </h:selectOneMenu>  
                                                    </f:facet>  
                                                </p:cellEditor>  
                                            </p:column> 
                                            <p:column headerText="Eliminar Seleccionados" style="width:25%">
                                                <center>
                                                    <p:commandButton action="#{managedBeanCliente.eliminarCliente()}" value="Eliminar" title="Eliminar" alt="Eliminar" icon="ui-icon-close"  update=":frmNuevo:detallecli" >                                            
                                                        <f:setPropertyActionListener value="#{item}" target="#{managedBeanCliente.objetoCliente}" />
                                                    </p:commandButton>
                                                </center>
                                            </p:column>
                                        </p:dataTable>
                                    </p:fieldset>
                                    <p:separator />
                                    <center>        
                                        <p:commandButton icon="ui-icon-arrowrefresh-1-w" value="Actualizar" action="#{managedBeanCliente.editar}" update=":frmNuevo" />                            
                                        <p:commandButton value="Eliminar" title="Eliminar" alt="Eliminar" icon="ui-icon-close"  action="#{managedBeanCliente.eliminar}" update=":frmNuevo" />
                                    </center>
                                </p:fieldset> 
                            </h:panelGrid>
                        </p:dialog>
                        <p:outputPanel id="panel1" autoUpdate="true" style="text-align: center">
                            <center>
                                <h:panelGrid columns="2" cellpadding="10">
                                    <p:fieldset legend="Exportar Todo: Seleccione el tipo de Formato" toggleSpeed="500"> 
                                        <center>
                                            <h:panelGrid columns="2" cellpadding="10">
                                                <h:commandLink>
                                                    <p:graphicImage style="width: 40px; height: 48px" value="/images/excel.png" />
                                                    <p:dataExporter type="xls" target="dataTable" fileName="lista" />
                                                </h:commandLink>
                                                <h:commandLink>
                                                    <p:graphicImage style="width: 50px; height: 48px" value="/images/pdf.jpg" />
                                                    <p:dataExporter type="pdf" target="dataTable" fileName="lista"/>
                                                </h:commandLink>
                                            </h:panelGrid>
                                        </center>
                                    </p:fieldset>
                                    <h:panelGrid columns="2" cellpadding="10" >                             
                                        <p:fieldset legend="Exportar por Paginado: Seleccione el tipo de Formato" toggleSpeed="500"> 
                                            <center>
                                                <h:panelGrid columns="2" cellpadding="10">
                                                    <h:commandLink>
                                                        <p:graphicImage style="width: 40px; height: 48px" value="/images/excel.png" />
                                                        <p:dataExporter type="xls" target="dataTable" fileName="lista" pageOnly="true"/>
                                                    </h:commandLink>
                                                    <h:commandLink>
                                                        <p:graphicImage style="width: 50px; height: 48px" value="/images/pdf.jpg" />
                                                        <p:dataExporter type="pdf" target="dataTable" fileName="lista" pageOnly="true"/>
                                                    </h:commandLink>
                                                </h:panelGrid>
                                            </center>
                                        </p:fieldset>
                                    </h:panelGrid>
                                </h:panelGrid>
                            </center>
                        </p:outputPanel>
                    </h:form>
                </p:panel>

            </ui:define>
        </ui:composition>
    </body>
</html>
